// pages/cart/cart.js
Page({

  /**
   * 页面的初始数据
   */
  data: {
      shopCar:[],
    allcheck:false,
    sumPrice:0
  },

  
  //全选按钮
  
  checkboxChange(e){
    console.log(e.currentTarget.dataset.checked)
    var allcheck = !(e.currentTarget.dataset.checked);

  //让所有商品的是否选中状态都变成和全选按钮一样
  var shopCar=this.data.shopCar;
    for(var i=0;i<shopCar.length;i++){
      shopCar[i].checked = allcheck
    }
    this.setData({
      allcheck: allcheck,
      shopCar:shopCar
    }) 
    this.getSumPrice()
  },
//计算所有商品总价
  getSumPrice(){
    var sumP=0;
    var shopCar = this.data.shopCar;
    for (var i = 0; i < shopCar.length; i++) {
     
      if (shopCar[i].checked==true){
        sumP += shopCar[i].price * shopCar[i].buyNum
      }
    }
    this.setData({
      sumPrice:sumP
    })
  },

  //点击单个选中框
  itemBoxChange(e){
    console.log(e.currentTarget.dataset.checked)
    var index = e.currentTarget.dataset.index;
    var c = e.currentTarget.dataset.checked
    var shopCar=this.data.shopCar;
    shopCar[index].checked=!c;
    // 使用evey判断是否所有的数据都选中了，如果都选中了，那么全选按钮就要选中
    var allcheck=shopCar.every(function(item){
      return item.checked==true
    })
    console.log(allcheck)
    this.setData({
      shopCar:shopCar,
      allcheck:allcheck
    })
    this.getSumPrice()
  },
    // 跳转到首页  因为是底部导航切换，所以使用switchTab
  toIndexPage:function(){
    wx.switchTab({
      url: "/pages/home/home"
    });

  },
  // 点击数量修改按钮
  reduceNum(e){
      var index=e.currentTarget.dataset.index;
      //每次要修改购物车数据必须先取出来购物车的数据
    var shopCar = this.data.shopCar;
      //使用三元运算符
      console.log(shopCar[index])
      //如果数量是1 还要点击减号，就认为是要删除该商品
    shopCar[index].buyNum == 1 ? this.deletItem(index) : shopCar[index].buyNum -= 1;

    this.setData({
      shopCar:shopCar
    })
    // 调用计算总价
    this.getSumPrice()

  },
  addNum(e) {
    var index = e.currentTarget.dataset.index;
    //每次要修改购物车数据必须先取出来购物车的数据
    var shopCar = this.data.shopCar;
    //使用三元运算符
 
    shopCar[index].buyNum += 1;

    this.setData({
      shopCar: shopCar
    })
    // 调用计算总价
    this.getSumPrice()

  },
  // 删除该商品
  deletItem(index){
    var shopCar = this.data.shopCar;
    var that=this;
    wx.showModal({
      title: '提示',
      content: '你确定要从购物车中移除该商品吗？',
      success(res) {
        if (res.confirm) {
          console.log('用户点击确定')
         
          shopCar.splice(index, 1);
          that.setData({
            shopCar: shopCar
          })
        } else if (res.cancel) {
          console.log('用户点击取消')
        }
      }
    })

   
  },
  // 点击去结算按钮
  pay(){
      wx.showLoading({
        title: '计算中',
      })
      var shopCar=this.data.shopCar;
      //获取选中的数据
      var buyShop=[];  //用来存下单的数据
      for (var i = shopCar.length-1; i >=0; i--) {
        if (shopCar[i].checked == true) {
          buyShop.push(shopCar[i])
          // 既然已经下单了，那么把购物车中已经下单的数据删除
          shopCar.splice(i,1)
        }
      }
      //更新购物车中的数据
    this.setData({
      shopCar:shopCar
    })
    wx.setStorage({
      key: 'buyNow',
      data: buyShop,
      success:function(){
        wx.hideLoading();
        wx.navigateTo({
          url: '/pages/pay/pay',
        })
      }
    })

  },
  /**
   * 生命周期函数--监听页面加载
   */
  onLoad: function (options) {
    
  },

  /**
   * 生命周期函数--监听页面初次渲染完成
   */
  onReady: function () {

  },

  /**
   * 生命周期函数--监听页面显示
   */
  onShow: function () {
      // 获取购物车中的数据
    var that = this;
    wx.getStorage({
      key: 'shopcat',
      success(res) {
        console.log(res.data)
        that.setData({
          shopCar: res.data
        })
        that.getSumPrice()
      }
    })
  },

  /**
   * 生命周期函数--监听页面隐藏
   */
  onHide: function () {
      var that=this;
      wx.setStorage({
        key: 'shopcat',
        data: that.data.shopCar,
      })
  },

  /**
   * 生命周期函数--监听页面卸载
   */
  onUnload: function () {

  },

  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh: function () {

  },

  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom: function () {

  },

  /**
   * 用户点击右上角分享
   */
  onShareAppMessage: function () {

  }
})